package main

// func main() {

// }

// Go语言包管理
//go工作区 bin pkg src
// src目录 以代码包形式组织并保存go源码文件， 同时也是Go编译时查找代码的位置
// pkg目录 用于存放由 go get/install 命令构建安装后代码包的".a"归档文件， 看也是编译生成的Lib文件存储位置
// bin 目录 保存由go 命令源码文件生成的可执行文件
// GOPATH 工作目录

// CMD 设置工作目录
// set GOPATH=%GOPATH%;C:\NewProject  临时设置
// setx GOPATH=%GOPATH%;C:\NewProject  永久设置

// 包 声明

// 远程导入
// import "github.com/gin-gonic/gin"

// func main() {
// 	r := gin.Default()
// 	r.GET("/ping", func(c *gin.Context) {
// 		c.JSON(200, gin.H{
// 			"message": "pong",
// 		})
// 	})
// 	r.Run() // listen and serve on 0.0.0.0:8080
// }

// 别名导入
// import (
// 	asd "fmt"
// 	asdc "time"
// )

// func main() {
// 	asd.Println("当前日期为:", asdc.Now().Day())
// }

// 匿名导入 使用下划线 来重命名该包 ， 主要是为了调用该包中的init函数

// 例如 分析一个web应用 性能时， 导入net/http/pprof包  该包的init函数主要是做了路由匹配
// import (
// 	"net/http"
// 	_ "net/http/pprof"
// )

// func ping(write http.ResponseWriter, request *http.Request) {
// 	write.Write([]byte("{\"message\":\"pong\"}"))
// }

// func main() {
// 	http.HandleFunc("/ping", ping)
// 	http.ListenAndServe(":8080", nil)
// }

// main 包 所有Go语言编译的可执行程序都必须有且一个main包
// main函数是程序的路口

// 包初始化 go程序自动调用Init 和main() 每个package init函数可选， 但 package main包 必须包含main函数
// 每个包可包含任意init（建议一个） init 用于设置包 初始化变量 或者其他要在程序运行前优先完成的引导工作

// 包命名
// 同目录下的源码文件的代码包声明语句要一致
// 源码文件声明的代码包的名称可以与其所在的目录的名称不同

// 依赖包管理 go mod
// download 下载依赖的module到本地cache
// edit 编辑go.mod
// graph 打印模块依赖图
// init 在当前文件夹初始化一个新的module ,创建go.mod
// tidy 增加丢失的module 去掉未用的module
// vendor 将依赖复制到vendor下
// verify 校验依赖
// why  解释为什么需要依赖

// go语言命名规范
// 驼峰式命名

//  导包一堆问题
import (
	"fmt"

	"../les8/pkg"
)

func main() {
	fmt.Println(pkg.SumNum)
}
